Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

254
Vistas
Obtenga confusión al usar el método "Array. Map" en JavaScript

mi código es:

 let obj1 = [ { city: 'Tokyo', country: 'Japan' }, { city: 'Bangkok', country: 'Thailand'} ]; function myFunc(arr, key, value){ let newArr = arr.map((e)=>{ let obj = e; obj[key] = value; return obj; }) return newArr } console.log(myFunc(obj1, 'continent', 'Asia')); console.log(obj1);

No quiero mutar la matriz "obj1". Es por eso que estoy usando el método Array.map. Pero sigue cambiando la matriz original. ¿Alguien sabe por qué sucede esto? ¿Dónde cometí el error?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Podrías tomar un objeto nuevo y esparcir el viejo.

 function myFunc(arr, key, value){ return arr.map(e => ({ ...e, [key]: value })); } let obj1 = [{ city: 'Tokyo', country: 'Japan' }, { city: 'Bangkok', country: 'Thailand'}]; console.log(myFunc(obj1, 'continent', 'Asia')); console.log(obj1);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Denunciar

0

Pensó que usar el operador igual copiaría cada objeto en la matriz para que no mute el objeto

 let obj = e;

pero lo que tiene en el código es otra referencia a los mismos elementos en la matriz.

el map en sí no es una garantía de que tenga una estructura de datos inmutable, debe copiar correctamente los datos, para los objetos en js puede usar Object.assign o el operador de spread operater

 let obj = { ...e }; // or let obj = Object.assign({}, e);
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda